
package com.cctv.esb.schema.commoncomplextype._0;

import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.datatype.XMLGregorianCalendar;


/**
 * 资源项类型
 * 
 * <p>ResourceItemType complex type的 Java 类。
 * 
 * <p>以下模式片段指定包含在此类中的预期内容。
 * 
 * <pre>
 * &lt;complexType name="ResourceItemType"&gt;
 *   &lt;complexContent&gt;
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *       &lt;sequence&gt;
 *         &lt;element name="AssignmentID" type="{http://cctv.com/ESB/schema/CommonSimpleType/0.1}AssignmentIDType"/&gt;
 *         &lt;element name="ItemNo" type="{http://cctv.com/ESB/schema/CommonSimpleType/0.1}ItemNoType"/&gt;
 *         &lt;element name="Phase" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="PlanStartDate" type="{http://www.w3.org/2001/XMLSchema}date"/&gt;
 *         &lt;element name="PlanStartTime" type="{http://www.w3.org/2001/XMLSchema}time"/&gt;
 *         &lt;element name="PlanEndDate" type="{http://www.w3.org/2001/XMLSchema}date"/&gt;
 *         &lt;element name="PlanEndTime" type="{http://www.w3.org/2001/XMLSchema}time"/&gt;
 *         &lt;element name="UoM" type="{http://cctv.com/ESB/schema/CommonComplexType/0.1}UoMType"/&gt;
 *         &lt;element name="PlanUnitQty" type="{http://www.w3.org/2001/XMLSchema}int"/&gt;
 *         &lt;element name="AssgStatus" type="{http://cctv.com/ESB/schema/CommonSimpleType/0.1}AssignmentStatusType"/&gt;
 *         &lt;element name="PartCode" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
 *         &lt;element name="EquipmentCode" type="{http://cctv.com/ESB/schema/CommonSimpleType/0.1}EquipmentCodeType"/&gt;
 *         &lt;element name="MatrQty" type="{http://www.w3.org/2001/XMLSchema}int"/&gt;
 *         &lt;element name="ProdTaskInfo" type="{http://cctv.com/ESB/schema/CommonComplexType/0.1}ProdTaskInfoType" minOccurs="0"/&gt;
 *         &lt;element name="RelativeUserInfo" type="{http://cctv.com/ESB/schema/CommonComplexType/0.1}UserInfoType"/&gt;
 *         &lt;element name="TechUserInfo" type="{http://cctv.com/ESB/schema/CommonComplexType/0.1}UserInfoType" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="Remark" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
 *       &lt;/sequence&gt;
 *     &lt;/restriction&gt;
 *   &lt;/complexContent&gt;
 * &lt;/complexType&gt;
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ResourceItemType", propOrder = {
    "assignmentID",
    "itemNo",
    "phase",
    "planStartDate",
    "planStartTime",
    "planEndDate",
    "planEndTime",
    "uoM",
    "planUnitQty",
    "assgStatus",
    "partCode",
    "equipmentCode",
    "matrQty",
    "prodTaskInfo",
    "relativeUserInfo",
    "techUserInfo",
    "remark"
})
public class ResourceItemType {

    @XmlElement(name = "AssignmentID", required = true)
    protected String assignmentID;
    @XmlElement(name = "ItemNo", required = true)
    protected String itemNo;
    @XmlElement(name = "Phase")
    protected String phase;
    @XmlElement(name = "PlanStartDate", required = true)
    @XmlSchemaType(name = "date")
    protected XMLGregorianCalendar planStartDate;
    @XmlElement(name = "PlanStartTime", required = true)
    @XmlSchemaType(name = "time")
    protected XMLGregorianCalendar planStartTime;
    @XmlElement(name = "PlanEndDate", required = true)
    @XmlSchemaType(name = "date")
    protected XMLGregorianCalendar planEndDate;
    @XmlElement(name = "PlanEndTime", required = true)
    @XmlSchemaType(name = "time")
    protected XMLGregorianCalendar planEndTime;
    @XmlElement(name = "UoM", required = true)
    protected UoMType uoM;
    @XmlElement(name = "PlanUnitQty")
    protected int planUnitQty;
    @XmlElement(name = "AssgStatus", required = true)
    protected String assgStatus;
    @XmlElement(name = "PartCode", required = true)
    protected String partCode;
    @XmlElement(name = "EquipmentCode", required = true)
    protected String equipmentCode;
    @XmlElement(name = "MatrQty")
    protected int matrQty;
    @XmlElement(name = "ProdTaskInfo")
    protected ProdTaskInfoType prodTaskInfo;
    @XmlElement(name = "RelativeUserInfo", required = true)
    protected UserInfoType relativeUserInfo;
    @XmlElement(name = "TechUserInfo")
    protected List<UserInfoType> techUserInfo;
    @XmlElement(name = "Remark", required = true)
    protected String remark;

    /**
     * 获取assignmentID属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getAssignmentID() {
        return assignmentID;
    }

    /**
     * 设置assignmentID属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setAssignmentID(String value) {
        this.assignmentID = value;
    }

    /**
     * 获取itemNo属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getItemNo() {
        return itemNo;
    }

    /**
     * 设置itemNo属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setItemNo(String value) {
        this.itemNo = value;
    }

    /**
     * 获取phase属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getPhase() {
        return phase;
    }

    /**
     * 设置phase属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setPhase(String value) {
        this.phase = value;
    }

    /**
     * 获取planStartDate属性的值。
     * 
     * @return
     *     possible object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public XMLGregorianCalendar getPlanStartDate() {
        return planStartDate;
    }

    /**
     * 设置planStartDate属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public void setPlanStartDate(XMLGregorianCalendar value) {
        this.planStartDate = value;
    }

    /**
     * 获取planStartTime属性的值。
     * 
     * @return
     *     possible object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public XMLGregorianCalendar getPlanStartTime() {
        return planStartTime;
    }

    /**
     * 设置planStartTime属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public void setPlanStartTime(XMLGregorianCalendar value) {
        this.planStartTime = value;
    }

    /**
     * 获取planEndDate属性的值。
     * 
     * @return
     *     possible object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public XMLGregorianCalendar getPlanEndDate() {
        return planEndDate;
    }

    /**
     * 设置planEndDate属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public void setPlanEndDate(XMLGregorianCalendar value) {
        this.planEndDate = value;
    }

    /**
     * 获取planEndTime属性的值。
     * 
     * @return
     *     possible object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public XMLGregorianCalendar getPlanEndTime() {
        return planEndTime;
    }

    /**
     * 设置planEndTime属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public void setPlanEndTime(XMLGregorianCalendar value) {
        this.planEndTime = value;
    }

    /**
     * 获取uoM属性的值。
     * 
     * @return
     *     possible object is
     *     {@link UoMType }
     *     
     */
    public UoMType getUoM() {
        return uoM;
    }

    /**
     * 设置uoM属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link UoMType }
     *     
     */
    public void setUoM(UoMType value) {
        this.uoM = value;
    }

    /**
     * 获取planUnitQty属性的值。
     * 
     */
    public int getPlanUnitQty() {
        return planUnitQty;
    }

    /**
     * 设置planUnitQty属性的值。
     * 
     */
    public void setPlanUnitQty(int value) {
        this.planUnitQty = value;
    }

    /**
     * 获取assgStatus属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getAssgStatus() {
        return assgStatus;
    }

    /**
     * 设置assgStatus属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setAssgStatus(String value) {
        this.assgStatus = value;
    }

    /**
     * 获取partCode属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getPartCode() {
        return partCode;
    }

    /**
     * 设置partCode属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setPartCode(String value) {
        this.partCode = value;
    }

    /**
     * 获取equipmentCode属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getEquipmentCode() {
        return equipmentCode;
    }

    /**
     * 设置equipmentCode属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setEquipmentCode(String value) {
        this.equipmentCode = value;
    }

    /**
     * 获取matrQty属性的值。
     * 
     */
    public int getMatrQty() {
        return matrQty;
    }

    /**
     * 设置matrQty属性的值。
     * 
     */
    public void setMatrQty(int value) {
        this.matrQty = value;
    }

    /**
     * 获取prodTaskInfo属性的值。
     * 
     * @return
     *     possible object is
     *     {@link ProdTaskInfoType }
     *     
     */
    public ProdTaskInfoType getProdTaskInfo() {
        return prodTaskInfo;
    }

    /**
     * 设置prodTaskInfo属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link ProdTaskInfoType }
     *     
     */
    public void setProdTaskInfo(ProdTaskInfoType value) {
        this.prodTaskInfo = value;
    }

    /**
     * 获取relativeUserInfo属性的值。
     * 
     * @return
     *     possible object is
     *     {@link UserInfoType }
     *     
     */
    public UserInfoType getRelativeUserInfo() {
        return relativeUserInfo;
    }

    /**
     * 设置relativeUserInfo属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link UserInfoType }
     *     
     */
    public void setRelativeUserInfo(UserInfoType value) {
        this.relativeUserInfo = value;
    }

    /**
     * Gets the value of the techUserInfo property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the techUserInfo property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getTechUserInfo().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link UserInfoType }
     * 
     * 
     */
    public List<UserInfoType> getTechUserInfo() {
        if (techUserInfo == null) {
            techUserInfo = new ArrayList<UserInfoType>();
        }
        return this.techUserInfo;
    }

    /**
     * 获取remark属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getRemark() {
        return remark;
    }

    /**
     * 设置remark属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setRemark(String value) {
        this.remark = value;
    }

}
